﻿using MediatR;

namespace Ebusiness_OrderService.DomainEvent
{
    /// <summary>
    /// 事件见监听者 订阅者
    /// </summary>
    public class OrderAddNotifiHandle : NotificationHandler<OrderAddNotification>
    {
        //事务脚本处理"事件"
        //1、"当发生某事件的时候，执行某个动作”
        //2、当有人回复了用户的提问的时候，系统就向提问者的邮箱发送通知邮件。事务脚本的实现
        //void 保存答案(longid, string answer) {
        //    保存到数据库(id, answer); 
        //    string email = 获取提问者邮箱(id); 
        //    发送邮件(email,"你的问题被回答了");
        //}

        //两种事件
        //1、DDD中的事件分为两种类型:领域事件(DomainEvents)和集成事件(Integration Events）
        //2、领域事件:在同一个微服务内的聚合之间的事件传递。使用进程内的通信机制完成。
        //3、集成事件:跨微服务的事件传递。使用事件总线(EventBus) 实现。

        //领域事件:在同一个微服务内的聚合之间的事件传递。使用进程内的通信机制完成
        protected override void Handle(OrderAddNotification notification)
        {
            Console.WriteLine("事件订阅者：" + notification.Name);
        }
    }
}
